<?php
class Usuario extends AppModel {
    var $name = 'Usuario';
    var $actsAs = array('Acl' => array('requester'));
    var $hasOne = array(
        'Tercero' => array(
            'className' => 'Tercero',
            'foreignKey' => 'id')
    );
    var $belongsTo = array(
        'Grupo' => array(
            'className' => 'Grupo',
            'foreignKey' => 'grupo_id')
    );

    function parentNode() {
        if (!$this->id && empty($this->data)) {
            return null;
        }
        $data = $this->data;
        if (empty($this->data)) {
            $data = $this->read();
        }
        if (!$data['Usuario']['grupo_id']) {
            return null;
        }
        else {
            return array (
                'model'=>'Grupo',
                'foreign_key'=>$data['Usuario']['grupo_id']);
        }
    }

    function validarLogin($data, $applymd5 = true){		
        $this->recursive = 1;
        $usuario = $this->find('first', array(
            'conditions'=>array(
                'Usuario.usuario ILIKE' => $data['usuario'],
                'Usuario.password' => $applymd5 ? md5($data['password']) : $data['password'],
                'Usuario.activo'=>true
            ),
            'fields'=>array(
                'Usuario.id',
				'Usuario.usuario',
				'Usuario.password',
				'Usuario.grupo_id',			
				'Grupo.codigo',
				'Grupo.descripcion',
				'Tercero.empresa_id',
                'Tercero.centro_dist_id',
				'Tercero.apellido_paterno',
				'Tercero.apellido_materno',
                'Tercero.nombres',
				'Tercero.tipo_documento_id',
				'Tercero.numero_documento',
				'Tercero.direccion',
                'Tercero.distrito_id',
				'Tercero.telefono1',
				'Tercero.telefono2',
				'Tercero.email'
            )
        ));
	
	if(!empty($usuario)){
            $usuario['Usuario']['Tercero'] = $usuario['Tercero'];
            $usuario['Usuario']['Grupo'] = $usuario['Grupo'];

            $this->Tercero->Empresa->recursive = -1;
            $empresa = $this->Tercero->Empresa->find('first', array(
                    'conditions'=>array('id'=>$usuario['Tercero']['empresa_id']),
                    'fields'=>array(
                        'id', 'razon_social', 'nombre_comercial', 'ruc', 'moneda_id', 'igv','factor_daot',
                        'uit','peso_unidad_id','items_factura','items_boleta','items_guia_remision_reparto',
                        'items_guia_remision_distribucion','items_comprobante_percepcion',
                        'items_comprobante_retencion','importe_min_sin_percepcion','retencion',
                        'importe_min_retencion','retencion_cas_documento','retencion_cas_mensual',
                        'retencion_cas','cuenta_igv','centro_produccion_id','tasa_agente_percepcion',
                        'cuenta_transferencia_costos_id'
                    )
                )
            );
            $empresa['Empresa']['escritura'] = true;
            $usuario['Usuario']['Empresa'] = $empresa['Empresa'];

            $centroDist = $this->Tercero->CentroDist->find('first', array(
                    'conditions'=>array('id'=>$usuario['Tercero']['centro_dist_id']),
                    'fields'=>array('id', 'codigo', 'descripcion', 'direccion','tipo_kardex_id','ciudad','simbolo','color'),
                    'recursive'=>-1
                )
            );
            $centroDist['CentroDist']['escritura'] = true;
            $usuario['Usuario']['CentroDist'] = $centroDist['CentroDist'];
            $usuario['Usuario']['Tercero']['color'] = $centroDist['CentroDist']['color'];

            return $usuario['Usuario'];
        }
        return false;
    }
}
?>
